package com.hskn.hss.core.annotation;


import com.hskn.hss.core.enums.BusinessType;
import com.hskn.hss.core.enums.OperatorType;
import io.swagger.annotations.ResponseHeader;

import java.lang.annotation.*;

/**
 * 自定义操作日志记录注解
 *
 * @author ruoyi
 */
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SysLog {
    /**
     * 模块
     */
    String title() default "";

    /**
     * 功能
     */
    BusinessType businessType() default BusinessType.OTHER;

    /**
     * 操作人类别
     */
    OperatorType operatorType() default OperatorType.MANAGE;

    /**
     * 是否保存请求的参数
     */
    boolean isSaveRequestData() default true;

    /**
     * 是否保存响应的参数
     */
    boolean isSaveResponseData() default true;

    /**
     * 前端传过来的一级主键
     */
    String idKey() default "";

    /**
     * 一级是否主键id
     */
    boolean isId() default true;

    /**
     * 二级是否主键id
     */
    boolean twoIsId() default true;

    /**
     * 一级表名
     */
    String tableName() default "";

    /**
     * 二级表名
     */
    String twoTableName() default "";

    /**
     * 一级名称(有二级时  作为二级的key )
     */
    String names() default "";

    /**
     * 二级名称
     */
    String twoNames() default "";

    /**
     * 实体泛型
     */
    Class<?> bean() default Void.class;

    /**
     * 一级实体泛型Mapper
     */
    Class<?> beanMapper() default Void.class;

    /**
     * 二级实体泛型Mapper
     */
    Class<?> twoBeanMapper() default Void.class;

    /**
     * 是否比较
     */
    boolean isCompare() default true;

    /**
     * 是否导入
     */
    boolean isImport() default false;

}
